1. Field of the Invention
The present invention relates to the balancing of the service load on a network service server.
More specifically, the present invention relates to a network service server load balancing device, a network service server load balancing method, and a computer-readable storage medium recorded with a network service server load balancing program, which allow the network service load to be distributed dynamically and efficiently to each of multiple network service servers according to its status.
2. Description of the Related Art
In recent years, as network services have increased with the rapid spread of Internet/Intranet, the demand has increased for improving the performance of and permitting more efficient utilization of the client server system and increasing the stability of services of servers. In particular, there is a demand for an environment which permits centralized access to the WWW (World Wide Web) server to be circumvented and failures to be hidden. For this reason, a system has been provided which uses two or more servers (or nodes) to perform one service (for example, ftp (file transfer protocol), HTTP (Hyper Text Transfer Protocol), telnet, or the like).
In order to implement services with stability, it is required to distribute services to each server suitably. On the other hand, the network services have become increasingly diversified, complicated, and advanced, and the frequency at which changes are made to the configuration of a group of servers and the service distribution method has increased. Also, the demand has increased for circumventing stops of some services due to some servers going down unexpectedly. Existing techniques of distributing services to multiple servers include:
(a) Round-robin DNS (Domain Name Server): in the DNS service, an entry table is set up in which multiple server IP (Internet Protocol) addresses are mapped to one domain name. When an inquiry is made by a client about a server IP address, servers are allocated to the client on a round robin basis according the entry table and the IP addresses of the allocated servers are presented to the client, thereby distributing services to multiple servers.
(b) Load distribution hardware: a hardware device is placed between a server group and a network to relay communications between clients and servers. Load measuring communications are made between the hardware device and each server and packets to be relayed are monitored to measure the number of connections to each server and its response time, thereby detecting the load condition of each server and distributing services to the servers accordingly.
(c) Agent: a function, called Agent, which resides on each server in a server group measures the load on its CPU (Central Processing Unit) and its disk utilization to see its load condition. The load distribution system is notified of the load condition of each server and distributes services to the servers accordingly.
However, the conventional techniques have the following problems:
Round robin DNS: in this system, services are distributed to servers only equally or at simple rates and each server has to perform services allocated to itself irrespective of its capabilities and dynamic load conditions. This produces a difference in load condition between each server, resulting in reduced efficiency of the whole system. Further, in the event that a server has gone down and the configuration of the server group has to be modified accordingly, it is required to manually make such a change to the server group configuration to delete a server that went down from the entry table. This change is made each time a server goes down. It is therefore difficult to cope with such a situation immediately. As a result, the whole system will have to be stopped temporarily.
Load distribution hardware: this system uses hardware and hence include large introduction costs. The employment of this system is limited because the hardware will not be incorporated into each server. In addition, since communications for load measurement are always needed between each server, extra load, which is different from original communications, is imposed on each server, which further increases traffic and may cause servers to go down. Furthermore, since the load is measured on a packet-by-packet basis, the servers may be switched even in mid-service and consequently errors may occur. Agent: since the agent function resides on each server, the server has to be modified at the time the function is installed and moreover the agent must conform to the server's operating system (OS). In addition, the load measurement is always made for each server, resulting in a further increase in the load on the server. Furthermore, as is the case with the load distribution system, since the load is measured on a packet-by-packet basis, the servers may be switched even in mid-service and consequently errors may occur.